The present invention relates to the field of network storage devices in general and in particular to accelerating and optimizing the creation of files on remote network storage devices.
Many organizations include users at two or more locations, such as branch offices. To facilitate cooperation by their users, improve efficiency, and reduce organizational costs, organizations may connect two or more local-area networks (LANs) at different locations with each other via a wide-area network (WAN), such as the internet or a private WAN. This enables users at different locations to share data and applications. This also allows resources such as applications servers and data storage at a single or small number of locations to serve users at many other network locations.
However, WAN performance bottlenecks create problems when connecting network locations via WANs. WANs typically have lower bandwidth and higher network latency than LANs. WAN bandwidth limits the performance of data intensive operations over a WAN and WAN latency limits the rate that consecutive dependent operations over a WAN can be processed. Both of these factors can dramatically reduce users' application performance when operating over a WAN.
WAN optimization devices optimize network traffic to improve WAN performance in reading and/or writing data over a network. A WAN optimization device typically monitors users' network traffic to attempt to predict data likely to be requested by users. This predicted data is prefetched over the WAN and cached by the WAN optimization devices at the users' respective network locations, so that this data can be quickly accessed by users if requested. WAN optimization devices also typically compress data for communication over the WAN. The WAN optimization devices' prefetching, caching, and compression masks the bandwidth and latency limitations of WANs from users.
WAN optimization devices may operate singly or in pairs at each side of a WAN connection to optimize network traffic. WAN optimization devices are referred to in the art by many different terms, including, but not limited to, transaction accelerators, WAN optimizers, WAN optimization controllers (WOCs), wide-area data services (WDS) appliances, WAN traffic optimizers (WTOs), and protocol accelerators or optimizers. Additionally, techniques for optimizing network traffic to improve network performance in reading and/or writing data over a network are referred to in the art by many different terms, including, but not limited to, WAN acceleration, transaction acceleration, transaction pipelining, protocol pipelining, request prediction, application flow acceleration, and protocol acceleration. Herein, the term “WAN optimization device” is used to refer to such devices and applications and “WAN optimization” is used to refer to such techniques.
Many software applications and file formats store multiple types of data and complex data structures in a single file or other type of container object. This is referred to herein as compound data. For example, a virtual machine application may access a disk image file representing the complete, block-by-block contents and structure of one or more virtual storage devices implemented by the virtual machine application. In another example, applications may create and manipulate files that include different types of objects or other data structures combined into a single compound data file. For example, a word processor document file may include text data and non-text elements such as spreadsheets and tables, and binary objects such as images. One example technology for implementing compound data sets and files includes the Microsoft Compound Document File Format and Object Linking and Embedding (OLE).